package lormi.meipin.controller.api;

import lormi.meipin.common.Result;
import lormi.meipin.controller.BaseController;
import lormi.meipin.dto.WorkedAddDto;
import lormi.meipin.dto.WorkedEditDto;
import lormi.meipin.exception.LMException;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

/**
 * 工作经历管理
 * */
@RestController
@RequestMapping(value="v2/worked/",method=RequestMethod.POST,produces = "application/json; charset=utf-8")
public class WorkedController extends BaseController{

	/**
	 * 添加一个工作经历
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * @Param company 公司名称
	 * @Param department 所在部门
	 * @Param title 工作职位
	 * @Param begin 开始时间
	 * @Param end 结束时间
	 * @Param remark 备注
	 * @Param ishide 是否对原公司屏蔽 1隐藏  2不隐藏
	 * */
	@RequestMapping("add")
	public String addWorked(@Valid WorkedAddDto workedAddDto,BindingResult result) throws LMException{
		checkResult(result);
		
		workedService.addWorked(workedAddDto);
		return Result.success();
	}

	/**
	 * 修改一个工作经历
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * @Param id 工作经历ID
	 * @Param company 公司名称
	 * @Param department 所在部门
	 * @Param title 工作职位
	 * @Param begin 开始时间
	 * @Param end 结束时间
	 * @Param remark 备注
	 * @Param ishide 是否对原公司屏蔽  1隐藏  2不隐藏
	 * */
	@RequestMapping("edit")
	public String editWorked(@Valid WorkedEditDto workedEditDto,BindingResult result) throws LMException{
		checkResult(result);
		
		workedService.editWorked(workedEditDto);
		return Result.success();
	}
	
	/**
	 * 获取工作经历列表
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * */
	@RequestMapping("list")
	public String getWorkedList(Integer userid) throws LMException{
		return Result.success(workedService.getList(userid));
	}
	
	/**
	 * 获取单个工作经历
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * @Param id 工作经历ID
	 * */
	@Valid
	@RequestMapping("get")
	public String getWorkedOne(@NotNull(message="100033") @RequestParam(value="id",required=false) Integer id) throws LMException{
		return Result.success(workedService.getWorked(id));
	}
	
	/**
	 * 删除一个工作经历
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * @Param id 工作经历ID
	 * */
	@Valid
	@RequestMapping("delete")
	public String delWorked(@NotNull(message="100033") @RequestParam(value="id",required=false) Integer id) throws LMException{
		
		workedService.delWorked(id);
		return Result.success();
	}
	
}
